import random
import collections

# 产生10000个随机的IP值
with open("ips.txt","w+") as ip:
    for x in range(10000):
        t = random.randint(0,255)
        ip.write(f"172.25.254.{t}\n")

# 统计各IP出现的次数
with open("ips.txt","r") as ip:
    q = set()
    s = list()
    # 将所生成的IP文本全部读取，生成一个列表
    t = ip.readlines()
    for i in t:
        # 将换行符删除
       str1 = i.replace("\n","")
        # 取出每个IP值最后的数值
       num = str1[11:]
        # 将数值田间到前面定义好的空列表s中
       s.append(num)
        # 调用collection模块进行重复出现字符的统计,生成一个元组，里面嵌套一个字典的collection类型的b
    b = collections.Counter(s)
    print(b)

    # 通过遍历取出b中字典的key值（IP值后面的数值）
    for a in b:
        # print(f"172.25.254.{a}出现了{b[a]}次")
        # 将IP出现的次数放到集合q中（自动去重）
        q.add(b[a])
        # 运用sort函数对元组q中的数进行自动排序，生成列表p
        p = list(sorted(q,reverse=True))
        # 输出出现次数在前十的IP值及他所对对应的次数
        if b[a] in p[-10:]:
           print(f"172.25.254.{a}出现了{b[a]}次")
    # 出现次数在前十的IP的次数
    print(p[:10])
    #print(p[-1:-10:-1])









